package com.hakim.wfb.customer.result.recharge;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hkfs.fundamental.api.data.DataObjectBase;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 积分充值记录
 */
public class UserRechargeRecordView  extends DataObjectBase {

    /**
     * 主键ID
     */
    private Long id;
    /**
     * 充值用户ID
     */
    private String userId;
    /**
     * 交易流水号
     */
    private String orderno;
    /**
     * 币代码
     */
    private String coinCode;
    /**
     * 充值币种价格
     */
    private BigDecimal coinPrice;
    /**
     * 充值币数量
     */
    private BigDecimal coinAmount;
    /**
     * 积分类型
     */
    private Integer pointType;
    /**
     * 充值积分数量
     */
    private BigDecimal pointAmount;
    /**
     * 充值实际积分数量
     */
    private BigDecimal actualPoint;

    /**
     * 充值钱包地址
     */
    private String walletAddress;
    /**
     * 充值状态: 1:处理中 2: 成功 3: 失败 4: 已退款
     */
    private Integer rechargeStatus;
    /**
     * 充值成功时间
     */
    private Date rechargeDate;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getOrderno() {
        return orderno;
    }

    public void setOrderno(String orderno) {
        this.orderno = orderno;
    }

    public String getCoinCode() {
        return coinCode;
    }

    public void setCoinCode(String coinCode) {
        this.coinCode = coinCode;
    }

    public BigDecimal getCoinPrice() {
        return coinPrice;
    }

    public void setCoinPrice(BigDecimal coinPrice) {
        this.coinPrice = coinPrice;
    }

    public BigDecimal getCoinAmount() {
        return coinAmount;
    }

    public void setCoinAmount(BigDecimal coinAmount) {
        this.coinAmount = coinAmount;
    }

    public Integer getPointType() {
        return pointType;
    }

    public void setPointType(Integer pointType) {
        this.pointType = pointType;
    }

    public BigDecimal getPointAmount() {
        return pointAmount;
    }

    public void setPointAmount(BigDecimal pointAmount) {
        this.pointAmount = pointAmount;
    }

    public BigDecimal getActualPoint() {
        return actualPoint;
    }

    public void setActualPoint(BigDecimal actualPoint) {
        this.actualPoint = actualPoint;
    }

    public String getWalletAddress() {
        return walletAddress;
    }

    public void setWalletAddress(String walletAddress) {
        this.walletAddress = walletAddress;
    }

    public Integer getRechargeStatus() {
        return rechargeStatus;
    }

    public void setRechargeStatus(Integer rechargeStatus) {
        this.rechargeStatus = rechargeStatus;
    }

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    public Date getRechargeDate() {
        return rechargeDate;
    }

    public void setRechargeDate(Date rechargeDate) {
        this.rechargeDate = rechargeDate;
    }
}
